package com.my.blog.website.service;

import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * 描述...
 *
 * @author: Lee
 * @date: 2019/12/15
 */
public interface UploadService {

    /**
     * 文件上传，不指定文件名key
     *
     * @param multipartFile 文件
     * @return
     * @throws QiniuException
     */
    Response upload(MultipartFile multipartFile) throws QiniuException, IOException;

    /**
     * 文件上传，指定文件名key
     *
     * @param multipartFile 文件
     * @param key 默认不指定key的情况下，以文件内容的hash值作为文件名
     * @return
     */
    Response upload(MultipartFile multipartFile, String key) throws IOException;

    /**
     * 获取下载链接
     *
     * @param name 文件名
     * @return
     */
    String downloadUrl(String name);

    /**
     * 删除资源
     *
     * @param name 文件名
     * @return
     */
    void delete(String name) throws QiniuException;
}
